package com.rslai.commons.validator.jsonvalidator.validators;

import org.junit.Assert;

import java.util.List;

import static com.rslai.commons.validator.jsonvalidator.matchers.JsonMatchers.matches;

/**
 * JSON校验器，regex校验器
 */
public class RegexValidator extends Validator {
    public static final String VALIDATOR_NAME = "regex";
    String regexStr;

    /**
     * 构造函数
     * @param args args
     */
    RegexValidator(List<Object> args){
        this.regexStr = (String)args.get(0);
    }

    /**
     * 校验JSON对象
     * @param object 待验证的JSON对象
     */
	@Override
	public void doValidate(Object object) {
        Assert.assertThat(getCurrentKeyPath(), getString(object), matches(regexStr));
    }

    /**
     * 返回校验名称
     * @return 校验名称
     */
	@Override
	public String name() {
        return VALIDATOR_NAME;
	}

}
